/*
 * @Description:Student
 * 
 * @Author: rendc
 * 
 * @Date: 2024-09-24 15:19:04
 * 
 * @LastEditors: rendc
 * 
 * @LastEditTime: 2024-09-24 16:22:12
 */
/**
 * Student
 */
public class Student {

  // 属性
  private String name;
  private int age;

  public Student() {
  }

  public Student(String name, int age) {
    this.name = name;
    this.age = age;
  }

  public int getAge() {
    return age;
  }

  public String getName() {
    return name;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public void setName(String name) {
    this.name = name;
  }

  @Override
  public boolean equals(Object obj) {
    System.out.println("重写 equals 方法");
    // 重写 equals 方法
    boolean result = false;
    // 类型判断
    // instanceof用于检查对象是否是Student类型的实例；返回值是boolean类型
    // 第一步. 判断类型是否相同
    // 如果类型不同 那么直接返回 false
    if (!(obj instanceof Student)) {
      return false;
    }
    // 引用地址相同
    if (this == obj) {
      System.out.println("引用地址相同");
      return true;
    }
    // 第二步判断 判断值是否相同
    // 向下转型 强转
    Student s = (Student) obj;
    if (name.equals(s.getName())
        &&
        age == s.getAge()) {
      System.out.println("对象的属性值相同");
      result = true;
    }
    return result;
  }
}